package com.sduept.nwld.dataserver.sourceinfo.transform;


/**
 * 源信息转换基本方法接口
 * @author ldx
 *
 */
public interface SourceInfoTransform {	
	/**
	 * 目标字符串截取
	 * @param sourceInfo
	 * @param targetInfo	
	 * @return
	 */
	public String subString(String sourceInfo,String targetInfo);	
	
	/** 
	 * 从源信息某字符第一次或最后一次出现的位置开始并根据步长截取目标字符串
	 * @param sourceInfo
	 * @param isFirst   true：第一次/false：最后一次  
	 * @param startChar
	 * @param step
	 * @return
	 */
	public String subString(String sourceInfo,boolean isFirst,char startChar,int step);	
	
	/** 
	 * 从源信息指定索引算起  某字符第一次或最后一次出现的位置开始并根据步长截取目标字符串
	 * @param sourceInfo
	 * @param fromIndex
	 * @param isFirst   true：第一次/false：最后一次  
	 * @param startChar
	 * @param step
	 * @return
	 */
	public String subString(String sourceInfo,Object fromIndex, boolean isFirst,char startChar,int step);	
	
	/**
	 * 连接多个字符串
	 * @param strs
	 * @return
	 */
	public String concatString(char connector,String... targetInfos);	
	
	/**
	 * 分隔字符串
	 * @param separator
	 * @param sourceInfo
	 * @return
	 */
	public String[] splitString(String separator,String sourceInfo);
	
	/**
	 * 将oldInfo替换为newInfo
	 * @param sourceInfo
	 * @param replaceType  1:replaceFirst(),  2:replace() 
	 * @param oldInfo
	 * @param newInfo
	 * @return
	 */
	public String replace(String sourceInfo,int replaceType,Object oldInfo,Object newInfo);	
	
	/**
	 * 通过正则表达式进行字符替换
	 * @param sourceInfo
	 * @param regEx
	 * @return
	 */
	public String replace(String sourceInfo,String regEx,Object newInfo);	
	
	/**
	 * 类型转换
	 * @param sourceInfo
	 * @param targetInfos 包括目标类型、目标格式等
	 * @return
	 */
	public Object typeConversion(String sourceInfo,String... targetInfos);	
}
